140 PRINT TAB(20);:INPUT "Select the RANK test you want: ",ASUB
142 IF ABS(ASUB-2)>1.01 THEN BEEP: GOTO 140
145 CLS: ON ASUB GOTO 200,620,950
150 PRINT: PRINT TAB(5);"What are the SAMPLE NUMBERS of the 2 groups you want to compare?": PRINT: PRINT TAB(10);
155 PRINT TAB(10);: INPUT;"Number: ",NS1: IF NS1<=A THEN PRINT " `";N$(NS1);"'"; ELSE GOSUB 165: GOTO 155
160 PRINT TAB(46);: INPUT;"Number: ",NS2: IF NS2<=A THEN PRINT " `";N$(NS2);"'": GOTO 170 ELSE GOSUB 165: GOTO 160
165 BEEP: PRINT TAB(20);FILE$;" has only";A;"samples.": RETURN
170 IF ASUB<3 THEN PRINT "Medians = ";TAB(17);MD(NS1);TAB(53);MD(NS2)
172 IF ASUB<2 OR T(NS1)=T(NS2) THEN 180 ELSE PRINT: PRINT "These 2 samples do not have the same number of elements----": PRINT TAB(25);"a rank correlation coefficient cannot be calculated."
173 PRINT: PRINT TAB(20);"Press any key to return to menu:"
175 A$=INKEY$: IF A$="" THEN 175 ELSE 110
180 PRINT: PRINT: RETURN
200 PRINT TAB(18);"WILCOXON RANK SUM TEST (two-tailed)": PRINT TAB(18);STRING$(35,205)
201 IF FILE$<>"" THEN GOSUB 150: N=T(NS1)+T(NS2): GOTO 210
202 PRINT :PRINT :PRINT TAB(10);
203 INPUT "Enter the NUMBER of observations in Sample #1: ",N1
204 PRINT TAB(10);:INPUT "Enter the NUMBER of observations in Sample #2: ",N2
205 PRINT: N=N1+N2: NMN=1: IF N1>N2 THEN NMN=2: N3=N2: N2=N1: N1=N3
206 PRINT TAB(12);"Enter the SUM of the ranks for Sample #";NMN;:INPUT ": ",T
207 ERASE C,CF: DIM C(N1),CF(N1): GOTO 370
210 T1=1: T2=1
220 PRINT: AP=CSRLIN: COLOR 23: PRINT TAB(26);"RANKING SAMPLES": COLOR 7
230 FOR Z=1 TO N: V1=VAL(D(NS1,CS(NS1,T1))): V2=VAL(D(NS2,CS(NS2,T2)))
235 IF T1>T(NS1) THEN SR(1,Z)=V2: SR(2,Z)=0: T2=T2+1: GOTO 260
240 IF T2>T(NS2) THEN SR(1,Z)=V1: SR(2,Z)=1: T1=T1+1: GOTO 260
245 IF V1<V2 THEN SR(1,Z)=V1: SR(2,Z)=1: T1=T1+1: GOTO 260
250 SR(1,Z)=V2: SR(2,Z)=0: T2=T2+1
260 NEXT: AD=1: SZ=1
270 FOR Z=1 TO N
280 IF SR(1,Z)=SR(1,Z+1) THEN AD=AD+1: SZ=SZ+Z+1: GOTO 300
290 FOR T=Z TO (Z+1-AD) STEP -1: SR(3,T)=SZ/AD: NEXT T: SZ=Z+1: AD=1
300 NEXT Z: SR1=0: SR2=0
310 FOR Z=1 TO N
320 IF SR(2,Z)=1 THEN SR1=SR1+SR(3,Z) ELSE SR2=SR2+SR(3,Z)
330 NEXT
340 LOCATE AP,18: PRINT "Sum of ranks for SAMPLE ";NS1;" = ";SR1: PRINT
350 PRINT TAB(18);"Sum of ranks for SAMPLE ";NS2;" = ";SR2: PRINT
360 IF T(NS1)<=T(NS2) THEN N1=T(NS1): N2=T(NS2): T=SR1 ELSE N1=T(NS2): N2=T(NS1): T=SR2
370 XN=N1*(N+1): IF XN-T<T THEN T=XN-T
380 AK=0: IF N>30 AND T>XN-1.96*SQR(N1*N2*(N+1)/12) THEN AK=1: AP=CSRLIN: AP=AP+3: GOTO 600
390 T=T-N1*(N1+1)*0.5
400 PRINT:PRINT: AP=CSRLIN: COLOR 23: PRINT TAB(22);"CALCULATING PROBABILITY"
410 BF=4: WT=0: FT=0: CB=0: CBF=0
420 FOR Z=1 TO N1: C(Z)=0: CF(Z)=0: NEXT
430 IF N1<4 THEN 512
440 IF T-CBF<=N2-CB THEN CT=T-CBF+1: CK=0: GOTO 475
970 FOR T=1 TO N: IF CS(NS1,Z)=CS(NS2,T) THEN CD=Z-T: S2=S2+CD*CD
975 NEXT T: NEXT Z
980 SR=1-(6*S2/(N*(N*N-1)))
990 PLAY "MB MS O3 L11 CCC O2 L2 C": PRINT : PRINT TAB(10);: COLOR 0,7
1000 PRINT TAB(15); "Correlation coefficient = ";SR;TAB(65): COLOR 7,0
1010 PRINT :PRINT :PRINT "The probability that a given value of Spearman's correlation coefficient is": PRINT " significantly different that 0 can be evaluated by reference to tables."
1050 PRINT :PRINT :PRINT: PRINT TAB(7);
1060 PRINT "Do you want to perform another rank test ";
1070 IF FILE$="" THEN PRINT "? (Y or N) ";ELSE PRINT "using this datafile? ";
1080 INPUT "",A$
1090 IF A$="Y" OR A$="y" THEN CLS: GOTO 110
1100 END
1110 BEEP: PRINT: IF ERL=50 AND ERR=53 THEN PRINT: PRINT TAB(13); "I cannot find a file by that name on drive "; ELSE 1150
1120 IF MID$(FILE$,2,1)=":" THEN DR$=LEFT$(FILE$,2) ELSE DR$="A:"